import { openDB } from 'idb';

const DB_NAME = 'hy_wjjlpt';
const DB_VERSION = 1; // 数据库版本

// 创建或打开数据库
async function openDatabase () {
  const db = await openDB(DB_NAME, DB_VERSION, {
    // 如果数据库不存在或版本发生变化时的升级逻辑
    upgrade (db) {
      if (!db.objectStoreNames.contains('items')) {
        db.createObjectStore('items', { keyPath: 'chatSessionId' }); // 以 'id' 作为主键
        // store.createIndex('name', 'name'); // 创建索引，方便通过 name 查询
      }
    },
  });
  return db;
}

// 封装操作：增
async function addItem (item) {
  const db = await openDatabase();
  return db.put('items', item);
}

// 封装操作：查找单个 item
async function getItemById (chatSessionId) {
  const db = await openDatabase();
  return db.get('items', chatSessionId);
}

// 封装操作：查找所有 items
async function getAllItems () {
  const db = await openDatabase();
  return db.getAll('items');
}

// 封装操作：删除 item
async function deleteItem (chatSessionId) {
  const db = await openDatabase();
  return db.delete('items', chatSessionId);
}

// 封装操作：更新 item
async function updateItem (item) {
  const db = await openDatabase();
  return db.put('items', item);
}

export default {
  addItem,
  getItemById,
  getAllItems,
  deleteItem,
  updateItem,
};
